/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package admin.informe;

import DBMS.DataBaseManager;
import clases.Informe;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

/**
 *
 * @author root
 */
public class agregarInforme extends org.apache.struts.action.Action {

    /*
     * forward name="success" path=""
     */
    private static final String SUCCESS = "success";
    private static final String FAILURE = "failure";

    /**
     * This is the action called from the Struts framework.
     *
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        Informe inf = (Informe) form;

        if (inf.getRuta() == null) {
            request.setAttribute("informe",inf);
            inf.setMensaje("El informe no pudo ser almacenado");
            return mapping.findForward(FAILURE);
        } else {
            FormFile myFile = inf.getRuta();
            System.out.println(myFile.getFileSize());
            byte[] datos = myFile.getFileData();
            File saveFile = new File("./" + myFile.getFileName());
            FileOutputStream fOutput = new FileOutputStream(saveFile);
            DataOutputStream out = new DataOutputStream(fOutput);
            out.write(datos);
    
             out.close();
             boolean agregar = DataBaseManager.getInstance().agregarInforme(inf);
             if(!agregar){
               // return mapping.findForward(FAILURE);
             }

        }
        inf.setMensaje("Carga Exitosa");
        return mapping.findForward(SUCCESS);
    }

    public ActionForward init(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        return mapping.findForward(SUCCESS);
    }
}
